package com.warm.base.design.b_command;

/**
 * @Date: 2019/11/22 13:23
 * @Author: LChuang
 * @Description: 命令模式 (行为型)
 *
 *      将一个请求封装为一个对象，从而使你可用不同的请求对客户进行参数化；对请求排队或记录请求日志，以及支持可撤销的操作。
 */
public class Client {

    /**
     * Receiver 接受者角色：该角色就是干活的角色，命令传递到这里是应该被执行的
     * Command 命令角色：需要执行的所有命令都在这里声明
     * Invoker 调用者角色：接收到命令，并执行命令
     */
    public static void main(String[] args) {
        Receiver receiver = new Receiver();
        Command command = new ConcreteCommand(receiver);
        Invoker invoker = new Invoker(command);
        invoker.executeCommand();
    }
}
